<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Set对象</title>
</head>
<body>
  <script>
    /**
     * 1. Set对象的api（size/add/delete/has/clear）
     * 2. 实现数组去重（参数只能为可迭代对象）
     * 3. 对Set对象进行遍历操作
     * 4. Set对象转换为数组
    */
    
    // 1. Set对象的api（size/add/delete/has/clear）
    const sets = new Set();
    const obj = {a: 1};
    sets.add(obj).add(2);
    // sets.delete(2);
    console.log('hasObj', sets.has(obj)); // true
    console.log('hasSinpleVal', sets.has(2)); // true
    sets.clear(); // 清空
    console.log('size', sets.size);
    console.log('sets', sets);

    // 2. 实现数组去重（参数只能为可迭代对象）
    const arr = [1, 2, 3, 2, 3, {a: 1}, {a: 1}];
    const uniqueSets = new Set(arr); 
    console.log('去重', uniqueSets);

    // 3. 对Set对象进行遍历操作
    for (const item of uniqueSets) {
      console.log('item', item);
    }
    uniqueSets.forEach((item, index, obj) => {
      console.log('item, index, obj', item, index, obj);
    })
    
    // 4. Set对象转换为数组
    console.log('arr1', [...uniqueSets]);
    console.log('arr2', Array.from(uniqueSets));
  </script>
</body>
</html>